1. Field of the Invention
The present invention relates to the generation of unique identifiers for logical units of SCSI devices using SCSI command sets.
2. Related Art
Current electronic and computing systems typically comprise many different devices that electronically communicate with each other over some type of bus or network. These devices require suitable interfaces in order to be connected to one another (e.g., via a suitable bus) for establishing and conducting communications, such as over a bus network for example. The most popular processor-independent standard is the small computer system interface (SCSI) standard, which connects components via a parallel bus for system-level interfacing between a computer and intelligent devices such as hard disks, floppy disks, CD ROMs, printers, scanners and other types of media devices or storage devices. SCSI can connect multiple devices to a single adaptor (e.g., a host bus adapter (HBA) or port) on a SCSI bus. SCSI standard devices transfer bits in parallel and can operate in either asynchronous or synchronous modes. The synchronous transfer rate may be up to 5 MB/s, for example.
SCSI-2 is version of the SCSI command specification, which shares the original SCSI's asynchronous or synchronous modes and adds a “fast SCSI” mode (<10 MB/s) and “Wide-SCSI” (16 bit, <20 MB/s or rarely 32 bit). SCSI-2 was added since the original SCSI was minimalistic in terms of the definition of command sets for different device classes. SCSI-2 allows scanners, hard disk drives, CD ROM drives, tapes and many other devices to be connected. SCSI-3 is an ongoing standardization effort to extend the capabilities of SCSI-2. SCSI-3's goals are more devices per bus (up to 32), faster data transferred, greater distances between devices (e.g. longer cables), more device classes and more command sets, structured documentation and a structured protocol model. Accordingly, SCSI now represents a family of SCSI standards, including standards directed to the SCSI architecture model, implementation standards, device-type specific command sets and shared command sets, SCSI protocols and interconnect standards.
With the increase in the number of different SCSI devices and SCI command sets, a SCSI bus or SCSI device must be able to uniquely identify another SCSI device in order to receive a transmission from that device. These unique identifiers require global uniqueness, and must be identified with a technique that is commonly used throughout the world. Accordingly, as part of the shared command set standard, industry groups developed a SCSI Primary Commands-2 (SPC-2) document which provides SCSI primary command standards that are designed to be used industry wide. In this document, a standardized inquiry vital product data (VPD) page has been defined that may contain various identifiers with different characteristics for a SCSI device being addressed, and/or for a logical unit (e.g., addressable blocks of storage created from one or more disks contained within a SCSI device, which may provide a unique connection to an application program or another SCSI device) being addressed on a SCSI device. This page is called a Device Identification VPD Page (hereinafter “VPD 83h page”).
Previously, unique identification of SCSI devices had been difficult and confusing, as there was no lack of basic mechanisms for this purpose in the SCSI standards. However, for devices that support VPD page 83h, a SCSI host device (e.g., a host bus) may be able to generate a unique logical unit identifier (UID) for a logical unit on another SCSI device (e.g. storage device) within a network. However, this too has limitations, since this kind of identification is currently limited to SCSI devices that support VPD 83h, and only to those SCSI devices having a VPD 83h payload which actually provides a globally unique identifier (e.g., within a field of the VPD page 83h). Accordingly, there is currently no UID generation process for a SCSI device that supports VPD 83h, but does not return a VPD 83h payload that contains an identifier considered to be a globally unique identifier. Further, the above technique cannot be utilized for SCSI devices (devices which are pre-SCSI-3 devices, for example) that do not support VPD 83h.